

class MUtil{
    request(param){
        return new Promise((resolve, reject) => {
            $.ajax({
                type        : param.type        || 'get',
                url         : param.url         || '',
                dataType    : param.dataType    || 'json',
                data        : param.data        || null,
                success     : res => {
                    // 数据请求成功
                    if(0 === res.status){
                        typeof resolve === 'function' && resolve(res.data, res.msg);
                    }
                    // 没有登录状态，强制登录
                    else if(10 === res.status){
                        this.doLogin();
                    }
                    else{
                        typeof reject === 'function' && reject(res.msg || res.data);
                    }
                },
                error       : err => {
                    typeof reject === 'function' && reject(err.statusText);
                }
            });
        });  
    }
       doLogin(){
       	   window.location.href = '/login?redirect' + encodeURIComponent(window.location.pathname);
       }
       //获取参数
       getUrlParam(name){
       	//参数样式 ?param=123&param=456
           let queryString = window.location.search.split('?')[1] || '',//.search就是取到问号之后的参数所以去掉问号就剩参数
            reg         = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"),
            result      = queryString.match(reg);//匹配到的是一个数组
        return result ? decodeURIComponent(result[2]) : null;
       }
        // 错误提示
    errorTips(errMsg){
        alert(errMsg || '好像哪里不对了~');
    }
    //操作成功提示
    successTips(successMsg){
        alert(successMsg || '操作成功~');
    }
    //本地存储
    setStorage(name,data){
    	let dataType = typeof data
    	//json对象
    	if(dataType === 'object'){
    		window.localStorage.setItem(name,JSON.stringify(data));//json数据需要这个步骤
    	}
    	//基础类型
    	else if(['number','boolean','string'].indexOf(dataType) >= 0){
    		window.localStorage.setItem(name,data);
    	}
    	else{
    		alert('此类型数据无法进行本地存储');
    	}
    }
    //取出本地存储内容
    getStorage(name){
       let data = window.localStorage.getItem(name);
       if(data){
       	return JSON.parse(data);
       }
       else{
       	return '';
       }
    }
    //删除本地存储内容
    removeStorage(name){
    	window.localStorage.removeItem(name);
    }
}

export default MUtil;